Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
There must be a file of one of the following types: mdl, mdx, fbx, obj, max, blend, mb, ma, 3ds, dae, dxf, usd, usdz, stl, stp, wrl, m2, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Давай разберём моё решение (ответ номер 2), я его не раскрыл полностью потому что ждал наводящих вопросов, но ты его проигнорировал, потому что не понял ни слова?
Ответ номер 3, тебе рассказали тоже самое, но более расширенно и даже карту приложили
Ответ номер 8, про спеллбуки, снова тоже решение отлично, но ты его игнорируешь и спрашиваешь про постройку зданий альянса
Не понятно что такое спеллбук? (это дефолтный скил предмета "книга заклинаний"), мы же тебя не тролим, а отвечаем конкретными решениями, но если у тебя настолько глобальное непонимание, что ты даже не знаешь как задать следующий вопрос, мб тебе не стоит заниматься варкрафт моддингом?
И ТУТ не надо быть программистом, просто тыкаешь кнопочки и задаешь след вопросы:
А что такое этот ваш спеллбук спеллбук?
а как мне добавить 4?
а как сделать чтобы не было слияния заклинаний
а как сделать, чтобы по активации заклинания происходило изучение исследования?
а продажу юнита?
а каст способности?
а постройку?
Мы не бежим тебе делать готовую карту/наработку ибо:
на это нужно время, даже продвинутым (от получаса до 3х в зависимости от концентрации)
карту можно сделать а ты пропадёшь даже лайк не поставив или даже не прочитав
получи ты готовое, то ты вообще ничего не поймёшь тогда и станешь паразитом, человеком который отнимает время других людей и эти люди делают ему карту по чуть чуть, есть люди, которые занимаются таким паразитизмом около 10 лет, не буду говорить имена, меня сразу все поняли о ком я
Сделал повышение защиты через моментально активируемый предмет. Эффекты от предмета, думаю, сможешь поменять. Повышение защиты не действует на невосприимчивых к магии юнитов.
какое отношение этот пункт имеет к проблеме?
короче покопался в wtg файле
у тебя раньше использовался какой то странный файл гуишных функций
скорее всего он лежал либо в папке с вар3, либо в папке с джнгп и потом его удалили
одна из функций (возвращает булеан) вообще была представлена как набор пробелов
узнавать что это была за функция мне было лень поэтому я её заменил на false (использовалась в условии)
это было в триггере ctart, так что поправь там условие
так же заменил IssueImmediateOrderBJ на IssueImmediateOrder
вот открываемая в редакторе карта
Оказывается причина была намного сложнее)))
Тот самый триггер-комментарий был обычным триггером (т.е хранил всю информацию о действиях и т.д), но отображался как комментарий
Поэтому помогло только его удаление
Сделать триггер для проверки кода, ну и организовать систему для его считывания и поверь это очень много всего, придется продумать.
Если коротко ты цифрами будешь (условно) сохранять своего героя, каждый набор цифр отвечает за какой то параметр героя, силу, ловкость, уровень, предметы и так далее, когда я говорю что это очень много всего придется продумать так и есть, тебе придется создать базу данных, для всех чисел и все проверять при введении команды, для защиты можно сверять суму чисел и проверять героя за которого играет игрок.
Мой тебе совет, не поленись и вбей в поиск "сделать команду save для карты варкрафт 3", на твое удивление там будет то что тебе нужно, уже на второй ссылке.
SetUnitPosition довольно тяжелая операци, юзайте SetUnitX\Y в конце полета юзай SetUnitPosition для того чтобы юнит не залетел в непроходимое место.
Фильтр просто ужас, ну кто так фильтры делает?
Проверка на 'Aloc', я в ужасе на кой черт проверять на дамми если GropEnumUnitsInRange\Rect не выделяет москитов, тока EnumOfPlayer может пикнуть москитов, остальное не пикает их, на то они и москиты...
Вот как выглядит нормальный фильтр без локалок и прочего
function EnemyFilter takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit( )
return GetUnitState( bj_lastFilterUnit, UNIT_STATE_LIFE ) > 0.405 and IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer ) and not( IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MAGIC_IMMUNE ) or IsUnitType( bj_lastFilterUnit, UNIT_TYPE_MECHANICAL ) or IsUnitInvulnerable( bj_lastFilterUnit ) )
endfunction
UnitDamageTargetEx - красиво но нафиг ненужно обводить в отдельную функцию с тучей аргументов + жутко неудобно, 100500 аргументов у функции и фиг знает за что какой от вечает, прямо так UnitDamageTarget, без отдельной функции.
Туча констант, тоже хорошо тока длят наработок, на деле ставь конкретные значения или юзай Difine vjass'a.
VinerX, вджасс на рефе работает, но лучше тогда бы на луа тебе сделали)
если сомневаешься то сделаю на джассе тогда уж
вот, я без понятия работает ли, потому что лень создавать юнитов под эти условия, да и может накосячил случайно где-то и работает не так как задумано, поможет или нет не знаю, но попробуй что-ли(?)
код
function Trig_Income_Cond takes nothing returns boolean
local integer i
set udg_lastFilterUnit = GetFilterUnit( )
set i = GetUnitFoodMade( udg_lastFilterUnit )
if IsUnitInGroup( udg_lastFilterUnit, udg_GroupEnded ) or ( i == 150 or i == 75 ) then
set udg_Inc = udg_Inc + i
endif
return false
endfunction
function Trig_Income_and_Disincome_Copy_Enum_Func takes nothing returns nothing
local integer i
set udg_TempPlayer = GetEnumPlayer( )
set udg_Inc = 0
call GroupEnumUnitsOfPlayer( udg_LocalOtrad, udg_TempPlayer, udg_IncomeCondition )
call DisplayTimedTextToPlayer( udg_TempPlayer, 0.00, 0.00, 5.00, "|cffffcc00Доход золота (каждые 15 секунд):|r |cff00ff00" + I2S( udg_Inc ) + "|r" )
set i = GetPlayerTechCount( udg_TempPlayer, 'R004', true ) * 75
set udg_Inc = udg_Inc + i
call DisplayTimedTextToPlayer( udg_TempPlayer, 0.00, 0.00, 5.00, "|cffffcc00Дополнительный доход (от улучшений):|r |cff00ff00" + I2S( i ) + "|r" )
set i = GetPlayerUnitCount( udg_TempPlayer, false ) * 25
set udg_Inc = udg_Inc - i
call DisplayTimedTextToPlayer( udg_TempPlayer, 0.00, 0.00, 5.00, "|cffffcc00Потребление на войска:|r |c00FF0303" + I2S( i ) + "|r" )
if udg_Inc > 0 then
call DisplayTimedTextToPlayer( udg_TempPlayer, 0.00, 0.00, 5.00, "|cffffcc00Итого баланс:|r |cff00ff00" + I2S( udg_Inc ) + " (Профицит)|r" )
elseif udg_Inc == 0 then
call DisplayTimedTextToPlayer( udg_TempPlayer, 0.00, 0.00, 5.00, "|cffffcc00Итого баланс:|r |cffffff000 (Нулевой бюджет)|r" )
else
call DisplayTimedTextToPlayer( udg_TempPlayer, 0.00, 0.00, 5.00, "|cffffcc00Итого баланс:|r |cffff0000" + I2S( -udg_Inc ) + " (Дефицит)|r" )
endif
call SetPlayerState( udg_TempPlayer, PLAYER_STATE_GOLD_GATHERED, GetPlayerState( udg_TempPlayer, PLAYER_STATE_GOLD_GATHERED ) + udg_Inc )
set udg_Inc = 0
endfunction
function Trig_Income_and_Disincome_Copy_O_Actions takes nothing returns nothing
call ForForce( bj_FORCE_ALL_PLAYERS, function Trig_Income_and_Disincome_Copy_Enum_Func )
endfunction
//===========================================================================
function InitTrig_Income_and_Disincome_Copy_O takes nothing returns nothing
set gg_trg_Income_and_Disincome_Copy_O = CreateTrigger( )
call DisableTrigger( gg_trg_Income_and_Disincome_Copy_O )
call TriggerRegisterTimerExpireEvent( gg_trg_Income_and_Disincome_Copy_O, udg_Compteur1 )
call TriggerAddAction( gg_trg_Income_and_Disincome_Copy_O, function Trig_Income_and_Disincome_Copy_O_Actions )
set udg_IncomeCondition = Condition( function Trig_Income_Cond )
endfunction
native GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing
native GroupEnumUnitsInRangeOfLoc takes group whichGroup, location whichLocation, real radius, boolexpr filter returns nothing
native GroupEnumUnitsInRect takes group whichGroup, rect r, boolexpr filter returns nothing
native GroupEnumUnitsOfPlayer takes group whichGroup, player whichPlayer, boolexpr filter returns nothing
native GroupEnumUnitsOfType takes group whichGroup, string unitname, boolexpr filter returns nothing
native GroupEnumUnitsSelected takes group whichGroup, player whichPlayer, boolexpr filter returns nothing
у некоторых есть аналоги с потолком выбора (кол-ва юнитов)
DestroyGroup( ... ) нужно использовать только если ты постоянно создаёшь группу до этого (в основном это требуется, если ты должен сделать действия с теми же юнитами спустя какое-то время, например выбрать кого-то там в области, наложить эффект, подождать 2 секунды и продамажить), но для темповых действий лучше иметь одну группу и просто очищать её
Ну а собственно какие проблемы?
Ты хочешь распределять урон между союзниками, или наносить урон врагам как связка варлока из доты?
Событие юнит получает урон, урон больше > 0 и не является отражённым уроном (проверяется с помощью глобальной переменной) , нанести столько-же ед. урона всем кто связан связкой. Можно не наносить урон а потихоньку отнимать здоровье, пока у юнита не будет хп < урона тогда уже наносим реальный урон.
не стоит использовать ждать
создаём для юнита целочисленную переменную time
1 триггер
Событие
периодическое событие - каждые 0.1 сек.-
Условие
time > 0
Действие
set time = time - 1
если time == 0 то понизить уровень способности "незаметность" для "герой" до 1
2 триггер
Событие
боевая единица - юнит атакован
Условие
Атакующий юнит=герой или Атакованный юнит=герой
Действие
set time=30
боевая единица - повысить уровень способности "незаметность" для "герой" до 2
не забудь закрыть вопрос (для этого выбери лучший ответ)
каждую секунду проверять у юнита или группы его показатель здоровья и как только % хп (есть такая функция проверки %ХП) упадёт ниже 50% добавляем предметную способность +15 урона или ауру кодоя (боевой марш), скрытую в спеллбуке, чтобы пассивно дать 25% от белого урона, иначе - удалить бонусную способностью
Ну хз, ручками удали скилл слк или тхт, хз как там у тебя, после деоптимизации карты (снятия защиты) часто бывают баги с обьектными данными, попробуйте другой деоптимизатор, или правьте ручками...
проблем может быть куча, начиная от версии редактора до чего угодно
но я припоминаю тему, когда один мододел словил такой же глюк при удалении лишнего импорта
в общем, твоя карта - это как куча ящиков, которые стоят друг на друге
и когда ты удаляешь что-то - ты будто вытаскиваешь один из ящиков снизу
ну и офк вся эта куча может развалиться (крашнуться)
какой из всего этого выход? сделать копию карты, удалять по 1-2 способности или файла импорта, сохранять, через 5-7 таких циклов опять делать бекап. только руками
Покопался еще и выяснил следующее: юнит, который пропадает, после удаления спобности Склад не мертв и не равен null => он жив и не удален из игры, хоть его и нельзя выделить на забинженную цифру отряда. Когда нажимаешь на цифру, камера переносится на башню, что логично, ведь он там, хоть его и не видно. Окей, я прописал в коде, чтобы после смерти башни моего тестового юнита показывало и мгновенно перемещало в позицию умирающей башни, а так же снимало с него паузу. Он становится видим и его даже можно выделить, однако выделение тут же сбрасывается. После того как я его показал, башня перестала "воскресать". Очень странно.
Случайно обнаружил следующее: просто-напросто не нужно удалять способность склад, когда юниты заходят в башню. Каким то образом Склад связана со способностью Взять на борт(По всей видимости механика у неё схожа с Боевой тревогой, раз обе способности берут юнитов внутрь юнита-обладателя способности). Теперь все работает корректно: Если юнит заходит в башню, то так как Склад на месте, юнит не пропадает, атака башне дается, если юнит выходит из башни, атака снова пропадает. Если башня разрушена - юнит появляется на её месте, никаких ошибок. Причем даже способность Пассажир не нужна, поскольку Склад тоже предоставляет места.
Простой ответ - никак. Невозможно добавить автокаст к способности у которой его изначально не было.
Сложный ответ - триггерно имитировать автокаст одним из нескольких способов.
Механику каста ты никак не изменишь у дефолтных способностей, Берёшь автокаст пустышку к примеру ярость огра, или ледяной щит,и триггерно из них делаешь эти абилки.
В момент ВКЛючения авто-каста юнит получает приказ, вот его и можно отловить.
Событие - юнит получает приказ (без цели).
Условие - сравнение приказов - полученный приказ = ...
Обычно приказы на вкл/выкл имеют вид innerfireon / innerfireoff
Смотри в самой способности.
BrandY TM, моста нет, есть область, при входе в которую фиксируется абсолютная высота юнитов. В зависимости от высоты определяется проходимость для каждого конкретного юнита (эмулируется не очень просто, но тем не менее).
Ну и само собой разумеется, есть метод с платформами и переключателями.
Способности активируются через приказы ("порядок строк - включен") , если приказ у абилок одинаковый то они срабатывают одновременно. Приказ поменять нельзя, так что он всегда будет одинаковый если делать на основе одной абилки, кроме у абилки Канал (у него приказ меняется в поле "id приказа" вроде). Надо делать из разных абилок либо из Канала.
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
Наверное скорее проблема в версии что плагина что макса ну поробуй другую версию макса с 2011-2014 и точно убедись что плагин именно под твою версию.
Наверное закрывай тему так как знатаков макса здесь не очень много.
понял что там какая то таблица, которая не дает генерировать похожие строки
Если в кратце то есть таблица строк, в которой все строки уникальны и если генерить 100500 разных строк, то она быстро засрётся. По логике вещей она должна очищаться со временем, но это варкрафт.
Xgm сообщество хоть и маленькое, но оно раздроблено на большое количество категорий, и каждая категория не считает другую за людей, презирает их творчество. И это не мои домыслы, не я это придумал, но я отношусь к таким людям. Идея ваша прекрасна, но по причинам выше почти нереализуема (надеюсь кого-то триггернут мои слова и он чтобы доказать, как я ошибаюсь, всё таки присоединиться к вам). И чтобы найти быстрее единомышленников напишите всё таки в какой версии вакрафта вы собираетесь работать:
Патч 1.26, Ujapi, 1.31, пиратка рефа, последний реф? Это самое важное по этому пункту происходит самое большое дробление и самая большая "война в нашей песочнице"
"каждый может написать свою способность для монстра", вы уже мыслите достаточно однобоко , способности какие-то, ещё скажите что будет сохранён РТС интерфейс и 6 слотовый инвентарь. Это означает что, вы хотите видеть возле себя либо мохровых нубов либо закостелых стариков, для которых варкрафт это всё ещё в первую очередь ламповая стратегия из 2001, а не движок позволяющий сделать игру любого жанра.
Время "кружков по интересам" закончилось давно, почти не реально найти за просто так, вам скорее всего придётся платить, чтобы вам реализовали какие-то механики даже на джассе или гуи. Потому что "а, кто захочет за бесплатно делать НЕ свой проект".
В общем ещё раз скажу, я очень хочу ошибаться, и искренне желаю, что вы нашли команду единомилишников единомышленников, сделали свой проект. Ну а я его с удовольствием оценю.
Берешь способность на базе авиабомб или еще какой-нибудь пустышки, потом устанавливаешь систему детекта урона, к ней прикручиваешь свой триггер, который проверяет наличие способности, отнимает ману, добавляет способность на +100500 хп, запускает таймер на 0.00 секунд с повешенной на него через хеш информацией о нанесенном уроне, и после срабатывания таймера возвращает отнятые хп и удаляет +100500 хп способность.
В том и дело что ОТВЕТА - НЕТ.Способность я НЕ кастую.Я проверяю - есть ли она у героя, и какого она уровня. Мне нужна ПАССИВНАЯ, способность. В данном случае моя способность блокирует часть урона, в зависимости от уровня, она не является пустышкой. Всё. Теперь я в тригере делаю проверку - что способность у героя есть. И если она есть, то на каждом 20-м ударе по герою, будет добавлятся способность - защита +10, или больше, взависимости от уровня способности, и затем через 30 секунд удалятся.
Я не спрашивал как кастовать скилл, и как с ним работать.
Я спросил другое:
ПОЧЕМУ? Почему способность сама по себе работает(ОНА ПАССИВНАЯ, и она работает), а обращение к ней тригера(ПРОВЕРКА того что, способность у героя есть), даже если сам тригер не активируется(СОБЫТИЕ, ещё ни разу не произошло, или галочка "изначально включен" убрана), ломает игру?
Прочитай внимательно всё что я писал пожалуйста, у меня просто ощущение что ты не всё прочитал, и не всё скрины посмотрел.
В общем и целом. Подвожу итоги:
Проблема оказалась конкретно в способности. Я так посмотрел, она видимо каким-то образом забаговалась.
Она была сделана на основе способности "каменные доспехи", но конкретно у этой способности почему-то изначальная раса была "наги". Т.е. это уже странно, потому что эта способность изначально от "ночных эльфов". Кроме этого, я отличий от стандарта в ней никаких не видел.
Я ее удалил, создал абсолютно такую же способность, и она работает, всё запускается. Скилл(тригерный) я сделал ровно так как и хотел, никакой ошибки в нём нет и не было в помине, о чем я в принципе подозревал с самого начала. Не знаю с чем связать этот баг, поэтому в принципе вопрос закрываю. Ответ на него я нашёл сам: это баг редактора.
Других вариантов я не вижу.
"Недостаточно ресурсов памяти для обработки этой команды", получал такое когда вынуждал варик скушать больше гигабайта оперативки, но это завист от карты, в момент краша посмотри в диспетчере задач сколько war3.exe кушает
Это особенность патча 1.30, на 1.26 всё нормально с этим. Может быть попробовать поменять приоритет кампании в файле priority, в статье про mix-архив это подробнее описано.
Параметры стака ядов с одним и тем же баффом, это нужно чтобы складывались замедлени и\или урон от разных юнитов, или бафф тупо обновлялся.
С одним из параметров яды с разными баффами скатаются независимо, каждый вешает свой бафф. (годная основа для замедляющих способностей)
А игра вылетает из за зацикливания, темболее бафф при удалении и появлении наносит 0.00 ед урона, это так для справки.
local DamageTrigger = CreateTrigger()
for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
TriggerRegisterPlayerUnitEvent(DamageTrigger, Player(i), EVENT_PLAYER_UNIT_DAMAGING) -- до вычета брони
TriggerRegisterPlayerUnitEvent(DamageTrigger, Player(i), EVENT_PLAYER_UNIT_DAMAGED) -- после вычета брони
end
TriggerAddAction(DamageTrigger, function()
local damage = GetEventDamage() -- число урона
local damageType = BlzGetEventDamageType() -- тип урона
local target = GetTriggerUnit() -- тот кто получил урон
local caster = GetEventDamageSource() -- тот кто нанёс урон
end)
Yury13, конечно для этого эта система и нужна
Юнит триггера - тот кто получил урон
Источник повреждений - тот кто нанёс урон
Ну и количество урона... на гуи не помню как уже
Вот условие на проверку баффа. Но тут может быть проблема, если у тебя есть станящие способности, которые используют не этот бафф.
Но мой способ, предложенный выше, также должен работать, причём независимо от того, какой станящий бафф наложен.
юнит начинает стройку, как только строитель поставит фундамент и начнется стройка. Можно в этот момент сохранить какую нибудь информацию о состояний.
юнит завершает стройку - при завершении строительства. После этого будем знать, что здание достроено.
Bergi_Bear, интересное утверждение, что абилки не активны у недостроенного здания, их не видно. можно ли проверить есть ли они в наличии? например проверить уровень (Lv>0), приказ кастануть и пр
по хп нельзя проверять % стройки. что если кто-то из вражин ударит, и хп уже не будет считаться полным. % стройки идет на время строительства раздел_строительство влияющие_на_здание
что эта за пассивка?
можно еще проверять текущий приказ у здания. Обычно у строящего здания текущий приказ равен id здания, что означает, что оно еще строится. к сожалению точно отследить % стройки у хуманов сложнее.
мнение о строителях хуманов
сложность вот в чем, с одним строителем не сложно определить % стройки. Даже когда он перестает временно строить, и возвращается. Все это отслеживается приказами. Нужно точно настроить и предусмотреть все. Но когда подключаются несколько рабочих, то стройка ускоряется. Нужно вводить некий счетчик строителей, которые одновременно строят одно здание. Если один строитель уходит во время стройки, счетчик убывает на единичку. Если счетчик равен = 0, значит стройка приостановлена. Теперь насколько ускоряется? щас затестил:
один хуман строит ратушу: 60 сек, 100%
два хумана строят ратушу: 30 сек, 50% Получается в 2 раза
три хумана строят ратушу: 20 сек, 33,3% Получается в 3 раза
но реально отследить, если коэффициент добавить. Проблема еще в том, что доп ускорение жрет ресурсы. Чтоб будет, если ресурсов не хватать будет? доп рабы перестанут строить? можно ли это отследить то? наверное приказами как-то отслеживается
Огненную стрелу нельзя спамить, в отличие от обычных спелов со снарядами.
Я для снарядов использовал Death Coil. Заменил захаркоденный эффект попадания, импортировав пустой файл по пути этого эффекта. Работать этот способ будет, если на карте нет юнитов с классификацией Нежить. И если не надо кастовать в своих (хотя это можно попытаться обойти временной выдачей классификации Нежить, я не проверял).
Есть ещё Acid Bomb, но эта способность накладывает бафф. До 1.31 (или 1.30) это будет сбивать все аналогичные баффы.
У анрайза вроде было, там был морф на мемхаке чисто без абилок, в его разделе должно быть. Найден ивент урона на предметы и разрушаемые обьекты.
Но без костыльно пока в паблике нету, портрет юнита хранится не в его структуре, нужно менять в бд данные о потртете или патчить прорисовку (что пока не сделал никто), так что тупо морфим да модель меняем.
Думаю, можно обойтись без тайлов.
Нужно сделать ето в JNGP.
Когда юзаеш способность, то сохраняєш координати точки, на какую юзнул способность (AbilityTarget),
тогда проверяєш тип проходимости для нее: если проходимо для летающих и не проходимо для пеших и проходимо для земноводных, то ето вода, тогда с некоторим шансом создаеш рибу.
Alexey103, руки распримите и сделайте триггерную смену анимации, "stand" - при завершении морфа, чтобы небыло death. Для моделей с альтернативными формами, меняются тег анимации, про это есть статьи. Если не получается - смотрите что вы сделали нетак.
'AHbu'/'AObu'/'AUbu'/'AEbu'/'AGbu'/'ANbu' - иконку кнопки строительства можно поменять, изменив в одной из указанных абилок иконку. Это абсолютно разные способности от каждой расы. Может показаться пустышками, но имеют реальные настройки (в мемхаке это что-то вроде контейнеров, или спелбуков). Открывают меню строительства. Также после того, как выбрали здание, и определились куда ставить, у каждой этой рассовой способности есть своя особенность строительства. Человечки строят своими руками, могут даже бросить и убежать от постройки. У нежити само строится, как поставится (будто призраки строят, но это можно отменить). У орков и эльфов рабочие находятся внутри стройки. Только у эльфов светлячки могут превращаться в древа, если у здание указано классификация "древо".
Описание кнопок и горячие клавиши (hot keys) находятся в Units/CommandStrings.txt
Изменить также можно в "дополнительно"->"игровой интерфейс"
сайт xgm.guru/p/wc3/27713
order_build = 851994
order_humanbuild = 851995
order_orcbuild = 851996
order_nightelfbuild = 851997
order_undeadbuild = 851998
order_resumebuild = 851999
851994-851999 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания. Этот приказ не ловится триггером, нужен для того, чтобы открыть меню.
Важно: Вышеперечисленные приказы работают, если юнит выделен у игрока. Иначе, это приказы бессмысленны. Вы можете напрямую отдать приказ строить, зачем тогда проходить через меню строительства.
repair это приказ ремонта. Достаточно, для раба с абилкой строительства/ремонта указать на цель smart, чтобы шел ремонтировать. Но у самого рабочего в приказе repair в состоянии показываться.
Да, мы может в некоторых случаях пользоваться smart. smart - приказ щелчком правой кнопкой мыши. Когда мы указываем на цель пкм (приказ щелчком правой кнопкой мыши), срабатывает авто. Если отдать чисто в точку smart, то юнит побежит, у него будет отображаться приказ move. На вражескую цель навести smart, то будет attack. Если отправите работника на дерево или шахту smart'ом, то в состоянии тек приказа у него будет harvest и пр. repair отображает текущий приказ юнита, который что то ремонтирует. Все эти приказы часто зависят от способностей, невозможно, идти ремонтировать цель, если нет такого навыка, или в целях навыка ограничена (надо снять итд)
Пытался триггерно заставить рабочих повербилдить здание
что это слово такое? Ускорить строительство?
В случае строительства Альянса какая то галиматья
Что там с альянсом. Что ты хочешь добиться? Каким способом? Как ты это реализуешь
Crick12,
тогда периодик твой выбор с сохраннением юнита, пока способка работает. То есть отдаешь приказ, запускается триггер с периодиком. Отдаешь другой приказ - отменив целевой, а значит выключаем триггер с периодиком. Так-же после срабатывания способки в периодике, он сам себя выключает.
В таком случае периодик будет работать только тогда, когда есть нужный приказ. Для контроля в периодике еще можешь проверять приказ, если отменили каким-то образом - выключаешь периодик.
Нужно поставить скорость анимации на 0.
Например, расставляешь камео на карте и делаешь триггер:
Событие: Игрок - Игрок Х cinematic skipped (нажал Esc)
Условие:
Действия: (для каждого камео сделать действие)
If камео is selected равно Да Then Анимация - Set Animation Speed 0% Else Ничего
То есть выбираешь каждого или нескольких сразу, отдаёшь им приказы, а в нужный момент нажимаешь Esc, чтобы юнит "замер".
Чем не угодил Веер ножей смотрящей в ночь? Не сбивет приказ идти куда либо, кастуется мгновенно, но сбивает чаннелинги.
Похожим эффектом обладает Рев друидов медведей и Леденящий крик разрушителя.
А так абилок не сбивающих никакие приказы очень мало, безумия, стремительность, божественный щит, жар преисподней и остальные абилки щиты которые включаются и выключаются, так же скилл сфинксов 'Aave' но это морф, поэтому не очень подходит для основы в качестве кнопки.
Еще раз, 'Aams' - щит от магии, он дает маг имун и только. 'Aam2' - нейтрализует урон от магии, при этом в цель можно применять заклинания, обрати внимание там другой бафф.
EHP_Sequence, они лишь кажутся сложными. По сути триггеры в графическом виде интерпретируют язык программирования, на котором написана вся игра. Попробуй для начала в изначальном триггере добавить действия из категории Видимость - Disable Fog of War и Disable Black Mask, они откроют всю карту. Потом добавь действие из категории Игрок - самое первое, оно установит стартовое количество золота первому игроку. Порассматривав их и поразбиравшись, поймёшь, что это просто ещё дополнительные функции редактора.
А так по идее есть один вариант через Редактор объектов, который не проверял, потому что это зашквар какой-то) Найди для предмета способность Книга заклинаний, нажми Ctrl+D, чтобы слева в РО увидеть её равкод, добавь эту способность юниту, нажав Shift+Enter в поле способностей, и введя равкод книги, в книгу же добавь равкоды юнитов или предметов, которые хочешь сделать дополнительными.
Технологии - Приоритет это лишь графический параметр, влияющий на порядок отображения различных типов юнитов в нижней рамке при выделении. При автоатаке юниты учитывают, может ли юнит перемещаться, если у юнита в РО базовая скорость равна нулю, и рядом есть юниты с ненулевой скоростью, он будет являться менее приоритетной целью.
Если в данном случае не важны побочные эффекты, можно попробовать установить башне скорость перемещения 1, Графика - Сдвиг окна (градусы) в 0 и скрыть панель приказов.
Сделай что то вроде триггера
Юнит завершает производство боевой единицы (любой юнит игрока)
Если trained unit (тренируемый) равно колдун
То set unit ability level (абилка колдуна) to 2
Заранее извиняюсь, пишу по памяти на основе обычного нерусифицированного гуи
я тоже создал систему ИИ, но я прописываю ее в триггерах, за это отвечает несколько функций которые выполняют определенный порядок действий, и пока что Полет нормальный, если поставить Компьютерного игрока в свободном слоте он появится в игре, также как и герой для него, еще система умеет проверять Ресурсы Уровень Ману Жизнь герои, умеют двигаться, умеют покупать и продавать предметы возвращая Голду за продажу, умеют Ломать Разрушаемые объекты, умеют создавать Юнитов и все это привязано к Уровню Героя ну и большой Плюс что они умеют играть в Мультиплеере
про Редактора ИИ не могу сказать ничего я им не пользуюсь
Не понимаю как грамотно реализовать.
для начала определится что именно они будут делать
а далее создавать Триггеры или Функции в зависимости что больше нравится и начать вешать События для них
а если добавить все События которые присутствуют в игре можно контролировать практически каждый Шаг ИИ
» WarCraft 3 / Illidan model
» WarCraft 3 / Исчезают способности
» WarCraft 3 / Вылет редактора при сохранении
» WarCraft 3 / ищу хорошую РПГ карту
» WarCraft 3 / Оптимизация кода
» WarCraft 3 / Боевая единица получает урон
» WarCraft 3 / Удаление способности
» WarCraft 3 / Автокаст
» WarCraft 3 / Использование кнопок
» WarCraft 3 / Баг редактора звука
» WarCraft 3 / Ограничение анимаций у модели
» Администрация XGM / Склейка ответа
» WarCraft 3 / суффикс редактора
» WarCraft 3 / Отключение/включение способностей
» WarCraft 3 / идеи
» WarCraft 3 / Замена стандартной озвучки
» WarCraft 3 / Юнит получает урон
» WarCraft 3 / Триггерная проверка
» WarCraft 3 / Способность у воды
» WarCraft 3 / Приказы
» WarCraft 3 / Заморозка юнитов
» WarCraft 3 / магический щит
» WarCraft 3 / GetHeroLevel() и GetUnitLevel()
» WarCraft 3 / Здания герои?